home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO016.dsk / FRED / MENU.bas < prev    next >
BASIC Source File  |  2012-02-16  |  8KB  |  170 lines

  1. 10  PRINT : PRINT  CHR$(4)"CLOSE MENU.EXEC": POKE 512,141
  2. 100 D$ =  CHR$(4):BELL$ =  CHR$(7): PRINT  CHR$(21)
  3. 110 BL$ = "                                       "
  4. 120 S1$ = "***************************************"
  5. 130 S2$ = "*                                     *"
  6. 140  DEF  FN A(X) = X -( INT((X -1)/9) *9)
  7. 150  DIM B$(51)
  8. 160  RESTORE : FOR I = 0 TO 5: READ TB(I),OP$(I): NEXT I
  9. 170  DATA 1,VIEW,7,LOCK,13,UNLOCK,20,DELETE,28,RENAME,36,COPY
  10. 180  GOTO 5000
  11. 200  REM <CTRL-J><CTRL-J><CTRL-J>EXITS
  12. 210  ONERR  GOTO 230
  13. 220  TEXT : HOME : PRINT : PRINT D$"- /FRED/BASIC.SYSTEM,D1"
  14. 230  VTAB 10: PRINT "PLEASE INSERT THE FrEdWriter DISK": PRINT : PRINT "THEN PRESS RETURN";
  15. 240  GET A$: IF A$ =  CHR$(13)  THEN  PRINT : GOTO 220
  16. 250  GOTO 5000:<CTRL-J><CTRL-J><CTRL-J>
  17. 300  REM  ERROR HANDLER
  18. 310  POKE 216,0:J = 1
  19. 320 R$ =  MID$ (FILE$,J,1)
  20. 330  IF R$ = " "  THEN 350
  21. 340 J = J +1: GOTO 320
  22. 350 FILE$ =  MID$ (FILE$,1,J -1) +"/"
  23. 360 PRFX$ = PRFX$ +FILE$: REM <CTRL-J><CTRL-J><CTRL-J>
  24. 370  TEXT : HOME : POKE 34,3
  25. 380  GOSUB 2000:
  26. 390  POKE 216,0
  27. 400 FILE = 1:K = 1:O =  INT((NUM +8)/9)
  28. 410  IF FILE >NUM  THEN FILE = 1
  29. 500  REM <CTRL-J><CTRL-J><CTRL-J>MAIN MENU
  30. 510 F = 0: HOME :
  31. 520  PRINT "PREFIX:";: INVERSE : PRINT PRFX$;: NORMAL 
  32. 530  VTAB 7: HTAB 1: PRINT N$: VTAB 8
  33. 540  PRINT "=======================================":
  34. 550  PRINT "#     PROGRAM     SIZE     MODIFIED"
  35. 560  PRINT "- --------------- ----- ---------------"
  36. 570  FOR J = (FILE) TO (FILE) +8
  37. 580 ::: IF J < = NUM  THEN  PRINT  FN A(J);" ";B$(J)
  38. 590  NEXT J
  39. 600  VTAB 20: HTAB 1
  40. 610  PRINT "---------------------------------------"
  41. 620 K =  INT(FILE/9) +2: IF K >O  THEN K = 1
  42. 630  VTAB 21: HTAB 4: INVERSE : PRINT " SELECT ";
  43. 640  HTAB 21: INVERSE : PRINT "-->";: NORMAL : PRINT " SEE PAGE ";
  44. 650  PRINT K;" OF ";O
  45. 660  VTAB 21: HTAB 2: GET E$: IF E$ =  CHR$(27)  THEN  RUN 
  46. 670  IF E$ =  CHR$(21)  THEN FILE = FILE +9: GOTO 410
  47. 680  IF E$ <"1"  OR E$ >"9"  THEN  PRINT BELL$;: GOTO 660
  48. 690 F =  VAL(E$):G = F +FILE -1: IF G >NUM  THEN  PRINT BELL$;: GOTO 660
  49. 700  VTAB F +10: HTAB 1: INVERSE : PRINT "-->": NORMAL 
  50. 710 FILE$ =  MID$ (B$(G),2,15):L = R:FULL$ = PRFX$ +FILE$
  51. 800  REM <CTRL-J><CTRL-J><CTRL-J>OPERATE ON FILE
  52. 810  IF FILE$ = "RETURN TO MAIN "  THEN 200: REM  ENDS
  53. 820 I = 0: POKE 34,20
  54. 825  VTAB 20: PRINT : CALL  -868
  55. 830  VTAB 21: NORMAL : FOR J = 0 TO 5: HTAB TB(J): PRINT OP$(J);: NEXT 
  56. 835  HTAB TB(I): INVERSE : PRINT OP$(I): NORMAL : PRINT 
  57. 840  HTAB 9: PRINT "SELECT:";: INVERSE : PRINT "<--->";: NORMAL : PRINT "  BACK: ";: INVERSE : PRINT "ESC": NORMAL 
  58. 850  WAIT  -16384,128: POKE  -16368,0:K =  PEEK(49152):
  59. 860  IF K = 21  THEN I = I +1: IF I >5  THEN I = 0: REM RIGHT ARROW
  60. 870  IF K = 8  THEN I = I -1: IF I <0  THEN I = 5: REM  LEFT ARROW
  61. 880  IF K = 13  THEN 920
  62. 890  IF K = 27  THEN  TEXT : POKE 34,3: HOME : GOTO 400
  63. 900  GOTO 830
  64. 910  REM <CTRL-J><CTRL-J><CTRL-J>EXECUTE COMMAND
  65. 920 A = (I +1): VTAB 21: NORMAL : ON A GOTO 1000,1200,1220,1300,1400,1500,830
  66. 930  TEXT : HOME : POKE 34,3: HOME : GOTO 370
  67. 940  TEXT : HOME : POKE 34,3: HOME : GOTO 390:<CTRL-J><CTRL-J><CTRL-J>
  68. 1000  ONERR  GOTO 1600: REM VIEW FILE
  69. 1010  TEXT : HOME : VTAB 23
  70. 1020  PRINT D$"TYPE "FULL$: PRINT : POKE 49168,0
  71. 1030  PRINT : PRINT : VTAB 23: HTAB 7: INVERSE : PRINT "PRESS RETURN TO CONTINUE";: NORMAL 
  72. 1040  GET A$: IF A$ < > CHR$(13)  THEN 1040
  73. 1050  PRINT : GOTO 940:<CTRL-J><CTRL-J><CTRL-J>
  74. 1200  ONERR  GOTO 1600
  75. 1210  PRINT D$"LOCK ";FULL$: GOTO 930:<CTRL-J><CTRL-J><CTRL-J>
  76. 1220  ONERR  GOTO 1600
  77. 1230  PRINT D$;"UNLOCK";FULL$: GOTO 930:<CTRL-J><CTRL-J><CTRL-J>
  78. 1300  REM   DELETE FILE
  79. 1305  VTAB 21: CALL  -958: FLASH : PRINT "DELETE: ";: NORMAL : PRINT FILE$: PRINT "ARE YOU SURE (Y/N)";
  80. 1307  GET A$: IF A$ = "N"  OR A$ = "n"  THEN 940
  81. 1308  IF A$ < >"Y"  AND A$ < >"y"  THEN 1307
  82. 1310  ONERR  GOTO 1330
  83. 1320  PRINT D$;"DELETE";FULL$: GOTO 930
  84. 1330  POKE 216,0: PRINT : IF  PEEK(222) = 10  THEN  PRINT "FILE LOCKED! DELETE ANYWAY? (Y/N) ";: GET A$: PRINT A$: IF A$ < >"Y"  AND A$ < >"y"  THEN 940
  85. 1340  IF  PEEK(222) = 10  THEN  PRINT D$;"UNLOCK";FULL$: PRINT D$;"DELETE";FULL$: GOTO 930:
  86. 1350  GOTO 1600<CTRL-J><CTRL-J><CTRL-J>
  87. 1400  VTAB 21: CALL  -958: PRINT "NEW NAME: ----------------";: HTAB 11: INPUT B$: IF B$ = ""  THEN 940
  88. 1405  ONERR  GOTO 1415
  89. 1410  PRINT D$;"RENAME ";FULL$ +"," +PRFX$ +B$: GOTO 930
  90. 1415 ER =  PEEK(222): IF ER = 10  THEN 1430
  91. 1420  IF ER < >16  THEN 1600
  92. 1425  VTAB 21: CALL  -958: PRINT BELL$;"Invalid Filename: ";B$: PRINT "RETURN to try again, OTHER to quit";: GET A$: PRINT : IF A$ =  CHR$(13)  THEN 1400
  93. 1427  GOTO 940
  94. 1430  ONERR  GOTO 1600
  95. 1440  POKE 216,0: PRINT D$;"UNLOCK ";FULL$: PRINT D$;"RENAME ";FULL$ +"," +PRFX$ +B$: PRINT D$;"LOCK ";PRFX$;B$: GOTO 930:<CTRL-J><CTRL-J><CTRL-J>
  96. 1500  REM <CTRL-J><CTRL-J><CTRL-J>FILE COPY
  97. 1520  CALL  -958: PRINT "INSERT TARGET DISK IN DRIVE "D2" AND": PRINT "THEN PRESS RETURN TO COPY...";
  98. 1525  FOR J = 1 TO 1500: NEXT : POKE 49168,0
  99. 1530  GET A$: PRINT : IF A$ < > CHR$(13)  THEN 940
  100. 1540  ONERR  GOTO 1600
  101. 1550  PRINT D$"PREFIX/ "D2$: PRINT D$"PREFIX": INPUT P2$
  102. 1560 SAME = 0: IF PRFX$ = P2$  THEN  PRINT D$"RENAME"P2$",/TEMP/"D2$:SAME = 1:P2$ = "/TEMP/"
  103. 1570  PRINT D$"COPY "FULL$","P2$;FILE$
  104. 1580  IF SAME  THEN  PRINT D$"RENAME  /TEMP/,"PRFX$;D2$
  105. 1590  GOTO 940:<CTRL-J><CTRL-J><CTRL-J><CTRL-J>
  106. 1600  REM <CTRL-J><CTRL-J><CTRL-J>ERROR TRAP
  107. 1605 ER =  PEEK(222):LN =  PEEK(218) +256 * PEEK(219): HOME 
  108. 1610  IF ER = 16  AND LN = 1570  THEN  PRINT "COPY FUNCTION IS MISSING FROM YOUR": PRINT "FrEdWriter DISK.  WON'T WORK NOW.";: GOTO 1670
  109. 1615  IF ER = 16  AND LN = 1020  THEN  PRINT "TYPE FUNCTION IS MISSING FROM YOUR": PRINT "FrEdWriter DISK.  CAN'T VIEW FILE.";: GOTO 1670
  110. 1620  IF ER = 6  OR ER = 8  THEN  PRINT "DISK NOT FOUND IN DRIVE ";D2;: GOTO 1670
  111. 1630  IF ER = 4  THEN  PRINT "DISK IS WRITE-PROTECTED... NOTCH IT";: GOTO 1670
  112. 1640  IF ER = 3  THEN  PRINT "THERE IS NO DRIVE ";D2;: GOTO 1670
  113. 1650  IF ER = 9  AND LN = 1570  THEN  PRINT "TARGET DISK IS FULL...COPY ABORTED<CTRL-G><CTRL-G>": GET A$: PRINT : GOTO 1580
  114. 1660  IF ER = 19  AND LN = 1570  THEN  PRINT "DUPLICATE FILE NAME ON DRIVE "D2".": PRINT "REPLACE WITH NEW?";: GET A$: IF A$ = "Y"  OR A$ = "y"  THEN  PRINT : PRINT D$"DELETE"D2$;FILE$: GOTO 1570
  115. 1665  IF ER = 19  THEN  PRINT "DUPLICATE FILE NAME...": PRINT "FUNCTION ABORTED.";: GOTO 1670
  116. 1669  POKE 216,0: RESUME 
  117. 1670  PRINT BELL$;BELL$;: GET A$: PRINT : GOTO 940
  118. 2000  REM <CTRL-J><CTRL-J><CTRL-J>READS DIR INTO B$()
  119. 2010  PRINT D$"PREFIX "PRFX$;D1$
  120. 2020  PRINT D$"OPEN";PRFX$",TDIR";D1$: PRINT D$"READ"PRFX$:
  121. 2030 D = 1
  122. 2040  FOR N = 1 TO 3: INPUT F$: NEXT 
  123. 2050  FOR N = 4 TO 51
  124. 2060 ::: INPUT F$: IF  LEN(F$) <5  THEN 2100
  125. 2070 ::: IF  LEFT$(F$,12) = "BLOCKS FREE:"  THEN N$ =  LEFT$(F$,40):N = 100: GOTO 2100
  126. 2080 ::: IF  MID$ (F$,17,4) = "TYPE"  OR  LEFT$(F$,1) = "/"  THEN 2100
  127. 2090 ::: IF  MID$ (F$,18,3) = "TXT"  THEN B$(D) =  LEFT$(F$,16) + MID$ (F$,67,6) + MID$ (F$,31,15):D = D +1
  128. 2100  NEXT N:
  129. 2110  PRINT D$;"CLOSE ";PRFX$:
  130. 2120 NUM = D:B$(D) = "=RETURN TO MAIN MENU"
  131. 2130  RETURN :<CTRL-J><CTRL-J><CTRL-J>
  132. 5000  REM 1ST MENU
  133. 5010  TEXT : HOME : POKE 216,0
  134. 5020  PRINT S1$: PRINT S2$: PRINT S2$
  135. 5030  PRINT "*              FrEdWriter             *"
  136. 5040  PRINT S2$
  137. 5050  PRINT "*             FILE MANAGER            *"
  138. 5060  PRINT S2$: PRINT S2$: PRINT S1$
  139. 5070  PRINT : PRINT : PRINT 
  140. 5080  HTAB 6
  141. 5090  PRINT "LOOK AT FILES ON WHICH DRIVE
  142. 5100  PRINT : PRINT 
  143. 5110 H = 14
  144. 5120  HTAB H: PRINT "1.  DRIVE 1"
  145. 5130  HTAB H: PRINT "2.  DRIVE 2"
  146. 5140 H = 11
  147. 5150  VTAB 21: HTAB H: INVERSE : PRINT "TYPE YOUR CHOICE:": NORMAL 
  148. 5160 H = 3
  149. 5170  PRINT : HTAB H: PRINT "(PRESS ";: INVERSE : PRINT "ESC";: NORMAL : PRINT " TO RETURN TO MAIN MENU)";
  150. 5180  GET A$: IF A$ =  CHR$(27)  THEN 200
  151. 5190  IF A$ <"1"  OR A$ >"2"  THEN 5180
  152. 5200 D1 =  VAL(A$):D1$ = ",D" +A$:A$ = "":D2 = 2: IF D1 = 2  THEN D2 = 1
  153. 5210 D2$ = ",D" + STR$(D2)
  154. 5220 DSK$ = "XXX"
  155. 5230  REM <CTRL-J><CTRL-J>GET VOLUME NAME
  156. 5300  ONERR  GOTO 5380
  157. 5310  PRINT  CHR$(4);"PREFIX/"D1$: PRINT : PRINT D$;"PREFIX": INPUT PRFX$
  158. 5320 T =  LEN(PRFX$)
  159. 5330  REM <CTRL-J><CTRL-J>STRIP ALL BUT VOLUME NAME
  160. 5340  FOR C = 2 TO T:
  161. 5350 ::: IF  MID$ (PRFX$,C,1) = "/"  THEN C$ =  LEFT$(C$,C):C = T
  162. 5360  NEXT C
  163. 5370 : POKE 216,0: GOTO 370:<CTRL-J><CTRL-J><CTRL-J><CTRL-J>
  164. 5380 ER =  PEEK(222)
  165. 5390  IF ER = 8  OR ER = 6  THEN 5000: REM  TRY AGAIN
  166. 5395  IF ER = 3  THEN A$ = "1": GOTO 5200
  167. 5400  POKE 216,0: RESUME 
  168. 5410  POKE 216
  169. 5420  STOP 
  170. 5430  GOTO 370